package com.dingding.api.controller.pay;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.dingding.api.controller.base.BaseController;

/**
 * @Description: 第三方支付回调控制器
 * @author fengshuonan
 * @date 2016年6月7日 上午9:31:36
 */
@Scope("prototype")
@Controller("payNotifyController")
@RequestMapping("/authorapi/order")
public class PayNotifyController extends BaseController {

//	private Logger log = Logger.getLogger(this.getClass());
//
//	@Autowired
//	private IOrderPayFacade orderPayFacade; // dingda
//
//	// 用户更订单临时表service(Service注入)
//	private IUserOrderService userOrderService;

//	/**
//	 * @Description:支付宝支付的回调
//	 * @author fengshuonan
//	 * @return void
//	 */
//	@RequestMapping(value = "/v1/alipayNotify", method = RequestMethod.POST)
//	public void alipayNotify(HttpServletRequest request, HttpServletResponse response) {
//
//		String buyer_email = request.getParameter("buyer_email"); // 买家支付宝账户
//
//		String fee = request.getParameter("total_fee") == null ? "0.0" : request.getParameter("total_fee");
//		Double total_fee = Double.valueOf(fee); // 交易金额
//
//		String trade_status = request.getParameter("trade_status"); // 交易状态
//
//		String body = request.getParameter("body"); // 商品描述
//
//		String out_trade_no = request.getParameter("out_trade_no"); // 账户操作ID
//
//		// 判断支付宝回调服务器时，传入的参数是否为空，如果为空，则返回null
//		if (ToolUtil.isBlank(trade_status) || ToolUtil.isBlank(out_trade_no)) {
//			log.info("支付宝回调服务器时，传入的参数为空！！！");
//			return;
//		}
//
//		// 判断支付宝交易是否成功
//		if (trade_status.equals("TRADE_SUCCESS")) {
//			boolean row = false;
//
//			// 车主抢单推送
//			PushCompetitiveOrder pushCompetitiveOrder = null;
//
//			// 根据订单Id获取订单信息
//			Userordert userordert = this.userOrderService.getUserordert(out_trade_no, null);
//
//			pushCompetitiveOrder = this.userOrderService.passengerDebit(userordert, pushCompetitiveOrder,
//					new DataResponse());
//			if (pushCompetitiveOrder != null) {
//
//				try {
//					// 乘客Id
//					String passengerId = null;
//					// 司机Id
//					String driverId = null;
//
//					// 乘客支付成功，向司机发送短信
//					// 判断该订单是否为空
//					if (userordert != null) {
//
//						if (userordert.getOrderType() == 1) { // 当下单用户为乘客时
//
//							// 乘客Id
//							passengerId = userordert.getPlaceOrderUserId();
//							// 司机Id
//							driverId = userordert.getGrabOrderUserId();
//
//						} else if (userordert.getOrderType() == 2) {// 当下单用户为司机时
//
//							// 乘客Id
//							passengerId = userordert.getGrabOrderUserId();
//							// 司机Id
//							driverId = userordert.getPlaceOrderUserId();
//						}
//
//						// 发送邮件
//						boolean flag = this.userOrderService.sendEmail(pushCompetitiveOrder, userordert);
//
//						// 邮件发送成功，打印success
//						if (flag) {
//							// 打印success，并关闭流
//							returnSuccess();
//						}
//						// 发送短信以及推送消息
//						this.userOrderService.passengerPaySendInfo(passengerId, driverId, userordert);
//
//					}
//
//				} catch (Exception e) {
//					log.error("支付宝回调失败！", e);
//				}
//			}
//		}
//		// 判断是否为交易创建
//		else if (trade_status.equals("WAIT_BUYER_PAY")) {
//			returnSuccess();
//
//		}
//		// 判断是否为交易成功
//		else if (trade_status.equals("TRADE_FINISHED")) {
//			returnSuccess();
//
//		}
//		// 判断是否为交易关闭
//		else if (trade_status.equals("TRADE_CLOSED")) {
//			returnSuccess();
//
//		}
//
//		return;
//	}

//	@RequestMapping(value = "/v1/wechatPayNotify", method = RequestMethod.POST)
//	public void wechatPayNotify(HttpServletRequest request, HttpServletResponse response) {
//
//		InputStream inputStream = super.getRequestInputStream();
//
//		// 读取接收到微信服务器传来的xml信息
//		String requestXml = ToolUtil.readStreamToText(inputStream);
//
//		log.info("微信传来的支付结果如下:" + requestXml);
//
//		// 把接受到微信服务器传来的xml信息转化为实体
//		WechatPayResult wechatPayResult = XMLParse.toObject(requestXml, WechatPayResult.class);
//
//		// 根据支付结果进行相关业务
//		boolean flag = this.userOrderService.verifyWechatPayResult(wechatPayResult);
//
//		// 当服务器成功接收到通知并校验成功，返回给微信ok
//		if (flag) {
//			responseOkToWechat();
//		} else {
//			responseFailToWechat();
//		}
//
//		return;
//	}

//	/**
//	 * @Title: returnSuccess @Description: 打印success，并关闭流 @return void @throws
//	 */
//	private void returnSuccess() {
//		super.getWriter().print("success");
//		super.getWriter().flush();
//		super.getWriter().close();
//	}
//
//	// 响应给微信成功
//	private void responseOkToWechat(response) {
//		String str = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
//		super.renderText(str);
//	}
//
//	// 响应给微信失败
//	private void responseFailToWechat() {
//		String str = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[FAIL]]></return_msg></xml>";
//		super.renderText(str);
//	}

}
